﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Business;
using Entidad;

namespace Presentation.Administrador
{
    public partial class AgregarEntradas : System.Web.UI.Page
    {
        EntradaBusiness entradaBusiness = new EntradaBusiness(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ApplicationServices"].ToString());

        CategoriaBusiness categoriaBusiness = new CategoriaBusiness(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ApplicationServices"].ToString());
        LinkedList<Entidad.Categoria> categorias;
      

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {

                categorias = categoriaBusiness.GetCategorias();

                if (Page.IsPostBack == false)
                {
                    //codigo para cargar el DropDownList
                    foreach (Entidad.Categoria categoriaActual in categorias)
                    {
                        ListItem li = new ListItem(categoriaActual.NombreCategoria, categoriaActual.IdCategoria.ToString());
                        ddlCategorias.Items.Add(li);
                    }

                    ddlCategorias.SelectedIndex = ddlCategorias.Items.Count - 1;

                }//fin del if 

            }

        }


        protected void btnNinguno_Click(object sender, EventArgs e)
        {

        }


        protected void Button1_Click(object sender, EventArgs e)
        {

        }

        protected void Cancelar_Click(object sender, EventArgs e)
        {
            txbTitulo.Text = "";
            txbContenido.Text = "";

            Response.Redirect("AdministradorInicio.aspx");
        }

        protected void Aceptar_Click(object sender, EventArgs e)
        {
            int categoria = ddlCategorias.SelectedIndex;
            String titulo = "";
            String contenido = "";
            String rutaDocumento = null;
            String rutaImagen = null;
            String SaveLocationDocumento, SaveLocationImagen;

            if (txbTitulo.Text == "")
            {
                lblTitulo.Text = "Debe especificar un Titulo para la entrada";
                lblTitulo.Visible = true;
            }
            else 
            {
                titulo = txbTitulo.Text; 
            }

            if (txbContenido.Text == "")
            {
                lblContenido.Text = "Debe especificar el contenido de la entrada";
                lblContenido.Visible = true;
            }
            else 
            {
                contenido = txbContenido.Text;
            }

            if (Flu_imagen.PostedFile != null)
                {
                    if (Flu_imagen.Value.EndsWith(".JPG") || Flu_imagen.Value.EndsWith(".jpg") || Flu_imagen.Value.EndsWith(".gif") || Flu_imagen.Value.EndsWith(".GIF") || Flu_imagen.Value.EndsWith(".png") || Flu_imagen.Value.EndsWith(".PNG"))
                    {
                        if (Flu_imagen.PostedFile.ContentLength <= 1000000)
                        {
                            lblImagen.Visible = false;

                            string fn = System.IO.Path.GetFileName(Flu_imagen.PostedFile.FileName);

                            SaveLocationImagen = Server.MapPath(@"..\Imagenes") + "\\" + fn;

                            rutaImagen = @"..\Imagenes" + "\\" + fn;

                            Flu_imagen.PostedFile.SaveAs(SaveLocationImagen);
                        }
                        else
                        {
                            lblImagen.Visible = true;
                            this.lblImagen.Text = "El tamaño del archivo debe ser menor a 1 mb";
                        }
                    }
                }


            if (flu_documento.PostedFile != null)
               {
                    if (flu_documento.Value.EndsWith(".doc") || flu_documento.Value.EndsWith(".docx") || flu_documento.Value.EndsWith(".xls") || flu_documento.Value.EndsWith(".xlsx") || flu_documento.Value.EndsWith(".pdf") || flu_documento.Value.EndsWith(".odt") || flu_documento.Value.EndsWith(".ods"))
                    {
                        if (Flu_imagen.PostedFile.ContentLength <= 30000000)
                        {
                            lblImagen.Visible = false;

                            string fn = System.IO.Path.GetFileName(flu_documento.PostedFile.FileName);

                            SaveLocationDocumento = Server.MapPath(@"..\Documentos") + "\\" + fn;

                             rutaDocumento = @"..\Documentos" + "\\" + fn;

                             flu_documento.PostedFile.SaveAs(SaveLocationDocumento);
                        }
                        else
                        {
                            lblDocumento.Visible = true;
                            this.lblDocumento.Text = "El tamaño del archivo debe ser menor a 30 mb";
                        }
                    }
                }

            if (titulo != "" && contenido != "")
            {
                if (categoria != 0) 
                {
                    if (Flu_imagen.PostedFile != null && flu_documento.PostedFile != null) 
                    {
                           try
                            {
                                entradaBusiness.GuardarEntrada(titulo, contenido, categoria, rutaImagen, rutaDocumento);
                            }
                            catch (Exception ex) { Response.Write(ex.Message); }
                    }
                    else
                    {
                        rutaDocumento = null;
                        rutaImagen = null;

                        try
                        {
                            entradaBusiness.GuardarEntrada(titulo, contenido, categoria, rutaImagen, rutaDocumento);
                        }
                        catch (Exception ex) { Response.Write(ex.Message); }
                    }
                }
            }

            Response.Redirect("AdministradorInicio.aspx");

        }
    }
}



